home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Software Vault: The Gold Collection
/
Software Vault - The Gold Collection (American Databankers) (1993).ISO
/
cdr46
/
acm_rand.zip
/
RAND32.C
< prev
next >
Wrap
C/C++ Source or Header
|
1993-01-16
|
626b
|
34 lines
#include "rand32.h"
long _s32r1 = 0L;
long _s32r2 = 0L;
void srand32(long s1, long s2)
{
_s32r1 = (s1 % 2147483562L) + 1;
_s32r2 = (s2 % 2147483398L) + 1;
}
long rand32(void)
{
register long z, k;
k = _s32r1 / 53668L;
_s32r1 = (40014L * (_s32r1 - (k * 53668L))) - (k * 12211L);
if (_s32r1 < 0L)
_s32r1 += 2147483563L;
k = _s32r2 / 52774L;
_s32r2 = (40692L * (_s32r2 - (k * 52774L))) - (k * 3791L);
if (_s32r2 < 0L)
_s32r2 += 2147483399L;
z = _s32r1 - _s32r2;
if (z < 1L)
z += 2147483562L;
return z;
}
double rand32u(void)
{
return ((double) rand32() * 4.656613e-10);
}